-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Building the IDE without bundling the toolchain #1722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Building the IDE without bundling the toolchain #1722
Conversation
The arduino script was copied into the output directory twice in the linux-build target. The avrdude64 binary was copied both by the linux-build and linux64-build targets.
This doesn't change anything except a bit of ordering in the build, but prepares for making these steps optional.
If you pass -Dinstall_toolchains=false or -Dinstall_native_libs=false to the ant command, the toolchains or native libraries will not be installed into the build/work directory, making the IDE fall back on the system versions instead. This is intended for advanced users who run from git and want to use their system toolchain or libraries. These toolchain-less installs are not intended to be distributed as tarballs.
This shouldn't change anything except a bit of ordering, but prepares for the next commit.
This folder is automatically created by the buildsystem inside the $platform/work directory already, so no need to carry an empty folder here.
This allows easily changing the arduino core files during development, without having to re-run ant on every build. This feature can be switched on by running ant -Dlink_harware=true. This also adds a clean-hardware target, to remove the work/hardware directory during the build. This is needed to prevent problems when switching the linking on and off. As an additional feature, if you remove any files from the hardware/arduino directory, they'll actually get removed from the resulting build now as well. The actual deleting of the symlinks is a bit of a mess, since ant's symlink support is a bit weird and underdocumented.
This removes some duplicate code, and prepares for the next commit.
Before, when no bundled compiler was available, the IDE would fall back to using system-wide commands. For the uploader tools, the IDE wouold try to execute a non-existent tool and show an error. This commit implements this in a more generic way: Whenever executing an external command, if the full path to the command could not be found, strip the path and let the system shell find the command in the regular places. Because of this, the previous special handling of compiler.path is removed and the variable is explicitely defined in avr/platform.txt. sam/platform.txt already contained an explicit definition of compiler.path.
As discussed on the mailing list, this turned out be an imperfect solution with no real way to fix it completely. So, instead of building without the toolchain, we've decided to allow modifying platform.txt (through platform.local.txt) to just ignore the bundled toolchain and to add symlinks to the Arduino code in the This means this pullrequest is superseded by #1985 and #1986. |
As discussed on the mailinglist, here's some commits to allow building the IDE without bundling the toolchain, to allow advanced users to use their system toolchain. It's probably not finished yet, I'll comment in more detail on the mailing list.